'use strict';

/**
 * The main MVC app module.
 *
 * @type {angular.Module}
 */

var fichepageModule = angular.module('fichepageModule', ['ui.select2', 'ThumbnailDirectives', 'ngAnimate', 'ui.bootstrap', 'ngSanitize', 'filters', 'ngTouch']);

	fichepageModule.factory('RechercheManager', ['$http', function($http) {
		return new RechercheModel($http);
	}]);
	
	fichepageModule.factory('FicheManager', ['$http', function($http) {
		return new FicheManagerModel($http);
	}]);

    fichepageModule.controller('GalerieImageController', ['$scope', 'FicheManager', GalerieImageController]);
    fichepageModule.controller('GoogleMapController', ['$scope', 'FicheManager', GoogleMapController]);
    fichepageModule.controller('PageReservationController', ['$scope' ,'FicheManager', PageReservationController]);
    fichepageModule.controller('ContactSejourController', ['$scope', 'FicheManager', ContactSejourController]);
    
	fichepageModule.animation('.slide-animation', function () {
        return {
            beforeAddClass: function (element, className, done) {
                var scope = element.scope();

                if (className == 'ng-hide') {
                    var finishPoint = element.parent().width();
                    if(scope.direction !== 'right') {
                        finishPoint = -finishPoint;
                    }
                    TweenMax.to(element, 1, {left: finishPoint, onComplete: done });
                }
                else {
                    done();
                }
            },
            removeClass: function (element, className, done) {
                var scope = element.scope();

                if (className == 'ng-hide') {
                    element.removeClass('ng-hide');

                    var startPoint = element.parent().width();
                    if(scope.direction === 'right') {
                        startPoint = -startPoint;
                    }

                    TweenMax.fromTo(element, 1, { left: startPoint }, {left: 0, onComplete: done });
                }
                else {
                    done();
                }
            }
        };
    });


